package com.hhh.springai_test.common;

/**
 * 结果工具类，用于创建统一的响应对象
 */
public class ResultUtils {

    /**
     * 创建一个成功的响应对象
     *
     * @param <T> 响应数据的类型
     * @param data 成功响应携带的数据
     * @return 成功的响应对象，包含成功代码、数据和成功消息
     */
    public static <T> BaseResponse<T> success(T data){
        return new BaseResponse<>(ErrorCode.SUCCESS_CODE.getCode(), data, "响应结果成功");
    }

    /**
     * 创建一个错误的响应对象，仅包含错误代码信息
     *
     * @param errorCode 错误代码枚举，包含错误代码和消息
     * @return 错误的响应对象，包含错误代码和消息
     */
    public static BaseResponse error(ErrorCode errorCode){
        return new BaseResponse<>(errorCode);
    }

    /**
     * 创建一个自定义错误消息的错误响应对象
     *
     * @param code 错误代码
     * @param message 自定义的错误消息
     * @return 错误的响应对象，包含自定义错误代码和消息
     */
    public static BaseResponse error(Integer code,String message){
        return new BaseResponse<>(code, null, message);
    }

    /**
     * 创建一个带有自定义消息的错误响应对象，基于错误代码枚举
     *
     * @param errorCode 错误代码枚举，用于获取错误代码
     * @param message 自定义的错误消息
     * @return 错误的响应对象，包含错误代码和自定义消息
     */
    public static BaseResponse error(ErrorCode errorCode, String message){
        return new BaseResponse<>(errorCode.getCode(), null, message);
    }
}

